package com.ssy.lingxi.contract.esign.request;

import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
public class SignFlowCreateRequest {

    /**
     * 必填: 否
     * 是否自动归档，默认false；
     * 如设置为true，则在调用签署流程开启后，当所有签署人签署完毕，系统自动将流程归档，状态变为“已完成”状态；
     * 如设置为false，则在调用流程开启后，需主动调用签署流程归档接口，将流程状态变更为“已完成”；已完成的流程才可下载签署后的文件
     */
    private Boolean autoArchive;
    /**
     * 必填: 是
     * 文件主题
     */
    private String businessScene;
    /**
     * 必填: 否
     * 任务配置信息
     */
    private ConfigInfoBean configInfo;
    /**
     * 必填: 否
     * 文件有效截止日期，时间戳格式，毫秒，默认不失效；若时间到了该参数设置的时间，则会触发【流程文件过期通知】
     */
    private Long contractValidity;
    /**
     * 必填: 否
     * 文件到期前，提前多少小时回调提醒续签，小时（时间区间：1小时——15天），默认不提醒；
     * 若时间到了该参数设置的时间，则会触发【流程文件过期前通知】
     */
    private Integer contractRemind;
    /**
     * 必填: 否
     * 签署有效截止日期，时间戳格式，毫秒，默认不失效；
     * 注：超过签署有效截止时间，则无法继续签署。
     * 若时间到了该参数设置的时间，则会触发【流程结束回调通知】
     */
    private Long signValidity;
    /**
     * 必填: 否
     * 发起人账户id，即发起本次签署的操作人个人账号id；如不传，默认由对接平台发起
     */
    private String initiatorAccountId;
    /**
     * 必填: 否
     * 发起方主体id，如存在个人代机构发起签约，则需传入机构id；如不传，则默认是对接平台
     */
    private String initiatorAuthorizedAccountId;

    @Data
    public static class ConfigInfoBean {

        /**
         * 必填: 否
         * 回调通知地址。
         * e签宝服务器主动通知客户服务器里指定的http/https路径
         */
        private String noticeDeveloperUrl;
        /**
         * 必填: 否
         * 通知方式，逗号分割，1-短信，2-邮件 。默认值1，请务必请选择一个通知方式，
         * 否则客户将接收不到流程的签署通知和审批通知，
         * 如果流程需要审批，将导致审批无法完成；如果客户需要不通知，可以设置noticeType=""
         * 注：短信或者邮件获取到的签署链接，有效期默认30天
         */
        private String noticeType;
        /**
         * 必填: 否
         * 签署完成重定向地址，默认签署完成停在当前页面。
         * 地址需要携带http/https 协议。
         */
        private String redirectUrl;
        /**
         * 必填: 否
         * 签署平台，逗号分割，1-开放服务h5，2-支付宝签 ，默认值1，2
         */
        private String signPlatform;

        /**
         * 必填: 否
         * 签署完成重定向跳转延迟时间，默认3。
         * 0-不展示签署完成结果页，签署完成直接跳转重定向地址
         * 3-展示签署完成结果页，倒计时3秒后，自动跳转重定向地址
         * 注：当redirectUrl不传的情况下，该字段无需传入，默认签署完成结果页不跳转
         */
        private Integer redirectDelayTime;
    }
}
